Today's voice and chat services allow users to navigate through a menu of options to perform a task such as enquiring about an airline flight status. There are also automated telephone based shops and support lines for all sorts of products and services which use menu structures to direct customers to information, products and services they require. However, the menu systems are typically of fixed structure and require the user to know the name of the item they seek or otherwise navigate large lists of items to find the item they want. The static design of the menu is the same for all users, and it is likely that many users have to sit through listening to a large number of irrelevant options before getting to the one that interests them. They may also find it impossible to go back if they change their mind after making a selection. In the shopping experience, countless products typically need to be browsed before finding a product of interest because the system is not inherently clever to identify what the customers are looking for.
As such, these menus are only suitable for small sized inventories of products or services or small libraries of information. Furthermore, the construction of these menus requires manual input to enumerate much of what a user can ask for in order to select a specific option in the menu or be recognized in freely spoken natural language.
The embodiments described below are not limited to implementations that solve any or all of the disadvantages of these known techniques.